serial: 8250: Add CAP_MINI, set for bcm2835aux
authorPhil Elwell <phil@raspberrypi.org>
Fri, 19 May 2017 14:07:27 +0000 (15:07 +0100)
committerPhil Elwell <phil@raspberrypi.org>
Fri, 19 May 2017 14:45:19 +0000 (15:45 +0100)
commitd0387372567b5dfe120c907ca894d77b67cbfc0b
tree94ff3d8365f24f693ac6900a335948db5bc4ae5b
parent5fd7bd54f638a0b581d2b1f297dc5e53148b8a51
serial: 8250: Add CAP_MINI, set for bcm2835aux

The AUX/mini-UART in the BCM2835 family of procesors is a cut-down
8250 clone. In particular it is lacking support for the following
features: CSTOPB PARENB PARODD CMSPAR CS5 CS6

Add a new capability (UART_CAP_MINI) that exposes the restrictions to
the user of the termios API by turning off the unsupported features in
the request.

N.B. It is almost possible to automatically discover the missing
features by reading back the LCR register, but the CSIZE bits don't
cooperate (contrary to the documentation, both bits are significant,
but CS5 and CS6 are mapped to CS7) and the code is much longer.

See: https://github.com/raspberrypi/linux/issues/1561

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
drivers/tty/serial/8250/8250.h
drivers/tty/serial/8250/8250_bcm2835aux.c
drivers/tty/serial/8250/8250_port.c